Bayesian programming